package com.ourteam.product.requirement.dao;

import net.dao.BaseQueryBean;
import net.dao.BaseWhereCriterion;
import net.dao.IDataAccessInterface;

import org.apache.commons.lang.StringUtils;

import java.util.Arrays;
import java.util.List;
import java.util.Map;


/**
 * Template Name : DAO查询对象
 * Template Version : 1
 * Template Last Modfiy Date : Sat Aug 19 10:06:32 CST 2017
 * Auto Generate Date : 2018-05-03 16:45:31
  * Warning ! This file will be overwrite when regenerate !
  *
 */
public class ProductVersionScopeRelateDAOQueryBean extends BaseQueryBean {
    public ProductVersionScopeRelateDAOQueryBean() {
        super();
    }

    public ProductVersionScopeRelateDAOQueryBean(BaseQueryBean aQueryBean) {
        super(aQueryBean);
    }

    public ProductVersionScopeRelateDAOQueryBean(BaseQueryBean aQueryBean,
        Map tableReplaceMap) {
        super(aQueryBean, tableReplaceMap);
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();

        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }

        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        return new Criteria(this);
    }

    public void addIdSelectProperty() {
        addIdSelectProperty("id");
    }

    public void addIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductVersionScopeRelateDAO.Id, aAlias);
        } else {
            addSelectProperty(IProductVersionScopeRelateDAO.Id, "id");
        }
    }

    public void addVersionScopeIdSelectProperty() {
        addVersionScopeIdSelectProperty("versionScopeId");
    }

    public void addVersionScopeIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductVersionScopeRelateDAO.VersionScopeId,
                aAlias);
        } else {
            addSelectProperty(IProductVersionScopeRelateDAO.VersionScopeId,
                "versionScopeId");
        }
    }

    public void addRelateTypeSelectProperty() {
        addRelateTypeSelectProperty("relateType");
    }

    public void addRelateTypeSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductVersionScopeRelateDAO.RelateType, aAlias);
        } else {
            addSelectProperty(IProductVersionScopeRelateDAO.RelateType,
                "relateType");
        }
    }

    public void addRelatedObjectIdSelectProperty() {
        addRelatedObjectIdSelectProperty("relatedObjectId");
    }

    public void addRelatedObjectIdSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductVersionScopeRelateDAO.RelatedObjectId,
                aAlias);
        } else {
            addSelectProperty(IProductVersionScopeRelateDAO.RelatedObjectId,
                "relatedObjectId");
        }
    }

    public void addStatusSelectProperty() {
        addStatusSelectProperty("status");
    }

    public void addStatusSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductVersionScopeRelateDAO.Status, aAlias);
        } else {
            addSelectProperty(IProductVersionScopeRelateDAO.Status, "status");
        }
    }

    public void addRemarksSelectProperty() {
        addRemarksSelectProperty("remarks");
    }

    public void addRemarksSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductVersionScopeRelateDAO.Remarks, aAlias);
        } else {
            addSelectProperty(IProductVersionScopeRelateDAO.Remarks, "remarks");
        }
    }

    public void addScopeNameSelectProperty() {
        addScopeNameSelectProperty("scopeName");
    }

    public void addScopeNameSelectProperty(String aAlias) {
        if (StringUtils.isNotBlank(aAlias)) {
            addSelectProperty(IProductVersionScopeRelateDAO.ScopeName, aAlias);
        } else {
            addSelectProperty(IProductVersionScopeRelateDAO.ScopeName,
                "scopeName");
        }
    }

    public void addAllSelectProperties() {
        addIdSelectProperty();

        addVersionScopeIdSelectProperty();

        addRelateTypeSelectProperty();

        addRelatedObjectIdSelectProperty();

        addStatusSelectProperty();

        addRemarksSelectProperty();

        addScopeNameSelectProperty();
    }

    public static class Criteria extends BaseWhereCriterion<ProductVersionScopeRelateDAOQueryBean> {
        protected Criteria(ProductVersionScopeRelateDAOQueryBean aParentObject) {
            super(aParentObject);
        }

        public Criteria andIdIsNull() {
            addCriterion(IProductVersionScopeRelateDAO.Id + " is null");

            return this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion(IProductVersionScopeRelateDAO.Id + " is not null");

            return this;
        }

        public Criteria andIdIsNotEmpty() {
            addCriterion(IProductVersionScopeRelateDAO.Id +
                " is not null AND " + IProductVersionScopeRelateDAO.Id +
                " <> ''");

            return this;
        }

        public Criteria andIdIsEmpty() {
            addCriterion("(" + IProductVersionScopeRelateDAO.Id +
                " is null OR " + IProductVersionScopeRelateDAO.Id + " = '')");

            return this;
        }

        public Criteria andIdEqualTo(long value) {
            return andIdEqualTo(Long.valueOf(value));
        }

        public Criteria andIdEqualTo(java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.Id + " = ", value, "id");

            return this;
        }

        public Criteria andIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.Id);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Id + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdNotEqualTo(long value) {
            return andIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToOrIsNull(long value) {
            return andIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andIdNotEqualToOrIsNull(java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.Id + " is null OR " +
                IProductVersionScopeRelateDAO.Id + " <>", value, "id");

            return this;
        }

        public Criteria andIdNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.Id);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Id + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdGreaterThan(long value) {
            return andIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.Id + " >", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.Id);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Id + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(long value) {
            return andIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdGreaterThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.Id + " >=", value, "id");

            return this;
        }

        public Criteria andIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.Id);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdGreaterThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Id + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdLessThan(long value) {
            return andIdLessThan(Long.valueOf(value));
        }

        public Criteria andIdLessThan(java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.Id + " <", value, "id");

            return this;
        }

        public Criteria andIdLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.Id);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Id + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(long value) {
            return andIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.Id + " <=", value, "id");

            return this;
        }

        public Criteria andIdLessThanOrEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.Id);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andIdLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Id + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdIn(long[] values) {
            if (values.length == 1) {
                return andIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductVersionScopeRelateDAO.Id + " in", values,
                    "id");

                return this;
            }
        }

        public Criteria andIdNotIn(long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductVersionScopeRelateDAO.Id + " not in",
                    values, "id");

                return this;
            }
        }

        public Criteria andIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductVersionScopeRelateDAO.Id + " in", values,
                    "id");

                return this;
            }
        }

        public Criteria andIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductVersionScopeRelateDAO.Id + " not in",
                    values, "id");

                return this;
            }
        }

        public Criteria andIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdEqualTo(values[0]);
            } else {
                addCriterion(IProductVersionScopeRelateDAO.Id + " in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductVersionScopeRelateDAO.Id + " not in",
                    Arrays.asList(values), "id");

                return this;
            }
        }

        public Criteria andIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Id + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Id + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andIdBetween(long value1, long value2) {
            addCriterion(IProductVersionScopeRelateDAO.Id + " between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductVersionScopeRelateDAO.Id + " between", value1,
                value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(long value1, long value2) {
            addCriterion(IProductVersionScopeRelateDAO.Id + " not between",
                value1, value2, "id");

            return this;
        }

        public Criteria andIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductVersionScopeRelateDAO.Id + " not between",
                value1, value2, "id");

            return this;
        }

        public Criteria andVersionScopeIdIsNull() {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId +
                " is null");

            return this;
        }

        public Criteria andVersionScopeIdIsNotNull() {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId +
                " is not null");

            return this;
        }

        public Criteria andVersionScopeIdIsNotEmpty() {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId +
                " is not null AND " +
                IProductVersionScopeRelateDAO.VersionScopeId + " <> ''");

            return this;
        }

        public Criteria andVersionScopeIdIsEmpty() {
            addCriterion("(" + IProductVersionScopeRelateDAO.VersionScopeId +
                " is null OR " + IProductVersionScopeRelateDAO.VersionScopeId +
                " = '')");

            return this;
        }

        public Criteria andVersionScopeIdEqualTo(long value) {
            return andVersionScopeIdEqualTo(Long.valueOf(value));
        }

        public Criteria andVersionScopeIdEqualTo(java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId + " = ",
                value, "versionScopeId");

            return this;
        }

        public Criteria andVersionScopeIdEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.VersionScopeId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andVersionScopeIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andVersionScopeIdNotEqualTo(long value) {
            return andVersionScopeIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andVersionScopeIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId + " <>",
                value, "versionScopeId");

            return this;
        }

        public Criteria andVersionScopeIdNotEqualToOrIsNull(long value) {
            return andVersionScopeIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andVersionScopeIdNotEqualToOrIsNull(
            java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId +
                " is null OR " + IProductVersionScopeRelateDAO.VersionScopeId +
                " <>", value, "versionScopeId");

            return this;
        }

        public Criteria andVersionScopeIdNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.VersionScopeId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andVersionScopeIdNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andVersionScopeIdGreaterThan(long value) {
            return andVersionScopeIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andVersionScopeIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId + " >",
                value, "versionScopeId");

            return this;
        }

        public Criteria andVersionScopeIdGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.VersionScopeId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andVersionScopeIdGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andVersionScopeIdGreaterThanOrEqualTo(long value) {
            return andVersionScopeIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andVersionScopeIdGreaterThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId + " >=",
                value, "versionScopeId");

            return this;
        }

        public Criteria andVersionScopeIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.VersionScopeId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andVersionScopeIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andVersionScopeIdLessThan(long value) {
            return andVersionScopeIdLessThan(Long.valueOf(value));
        }

        public Criteria andVersionScopeIdLessThan(java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId + " <",
                value, "versionScopeId");

            return this;
        }

        public Criteria andVersionScopeIdLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.VersionScopeId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andVersionScopeIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andVersionScopeIdLessThanOrEqualTo(long value) {
            return andVersionScopeIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andVersionScopeIdLessThanOrEqualTo(java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId + " <=",
                value, "versionScopeId");

            return this;
        }

        public Criteria andVersionScopeIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.VersionScopeId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andVersionScopeIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andVersionScopeIdIn(long[] values) {
            if (values.length == 1) {
                return andVersionScopeIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductVersionScopeRelateDAO.VersionScopeId +
                    " in", values, "versionScopeId");

                return this;
            }
        }

        public Criteria andVersionScopeIdNotIn(long[] values) {
            if (values.length == 1) {
                return andVersionScopeIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductVersionScopeRelateDAO.VersionScopeId +
                    " not in", values, "versionScopeId");

                return this;
            }
        }

        public Criteria andVersionScopeIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andVersionScopeIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductVersionScopeRelateDAO.VersionScopeId +
                    " in", values, "versionScopeId");

                return this;
            }
        }

        public Criteria andVersionScopeIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andVersionScopeIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductVersionScopeRelateDAO.VersionScopeId +
                    " not in", values, "versionScopeId");

                return this;
            }
        }

        public Criteria andVersionScopeIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andVersionScopeIdEqualTo(values[0]);
            } else {
                addCriterion(IProductVersionScopeRelateDAO.VersionScopeId +
                    " in", Arrays.asList(values), "versionScopeId");

                return this;
            }
        }

        public Criteria andVersionScopeIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andVersionScopeIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductVersionScopeRelateDAO.VersionScopeId +
                    " not in", Arrays.asList(values), "versionScopeId");

                return this;
            }
        }

        public Criteria andVersionScopeIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andVersionScopeIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andVersionScopeIdBetween(long value1, long value2) {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId +
                " between", value1, value2, "versionScopeId");

            return this;
        }

        public Criteria andVersionScopeIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId +
                " between", value1, value2, "versionScopeId");

            return this;
        }

        public Criteria andVersionScopeIdNotBetween(long value1, long value2) {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId +
                " not between", value1, value2, "versionScopeId");

            return this;
        }

        public Criteria andVersionScopeIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductVersionScopeRelateDAO.VersionScopeId +
                " not between", value1, value2, "versionScopeId");

            return this;
        }

        public Criteria andRelateTypeIsNull() {
            addCriterion(IProductVersionScopeRelateDAO.RelateType + " is null");

            return this;
        }

        public Criteria andRelateTypeIsNotNull() {
            addCriterion(IProductVersionScopeRelateDAO.RelateType +
                " is not null");

            return this;
        }

        public Criteria andRelateTypeIsNotEmpty() {
            addCriterion(IProductVersionScopeRelateDAO.RelateType +
                " is not null AND " + IProductVersionScopeRelateDAO.RelateType +
                " <> ''");

            return this;
        }

        public Criteria andRelateTypeIsEmpty() {
            addCriterion("(" + IProductVersionScopeRelateDAO.RelateType +
                " is null OR " + IProductVersionScopeRelateDAO.RelateType +
                " = '')");

            return this;
        }

        public Criteria andRelateTypeEqualTo(String value) {
            addCriterion(IProductVersionScopeRelateDAO.RelateType + " = ",
                value, "relateType");

            return this;
        }

        public Criteria andRelateTypeEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.RelateType);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelateTypeEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.RelateType + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateTypeNotEqualTo(String value) {
            addCriterion(IProductVersionScopeRelateDAO.RelateType + " <>",
                value, "relateType");

            return this;
        }

        public Criteria andRelateTypeNotEqualToOrIsNull(String value) {
            addCriterion(IProductVersionScopeRelateDAO.RelateType +
                " is null OR " + IProductVersionScopeRelateDAO.RelateType +
                " <>", value, "relateType");

            return this;
        }

        public Criteria andRelateTypeNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.RelateType);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelateTypeNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.RelateType + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateTypeGreaterThan(String value) {
            addCriterion(IProductVersionScopeRelateDAO.RelateType + " >",
                value, "relateType");

            return this;
        }

        public Criteria andRelateTypeGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.RelateType);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelateTypeGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.RelateType + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateTypeGreaterThanOrEqualTo(String value) {
            addCriterion(IProductVersionScopeRelateDAO.RelateType + " >=",
                value, "relateType");

            return this;
        }

        public Criteria andRelateTypeGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.RelateType);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelateTypeGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.RelateType + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateTypeLessThan(String value) {
            addCriterion(IProductVersionScopeRelateDAO.RelateType + " <",
                value, "relateType");

            return this;
        }

        public Criteria andRelateTypeLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.RelateType);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelateTypeLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.RelateType + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateTypeLessThanOrEqualTo(String value) {
            addCriterion(IProductVersionScopeRelateDAO.RelateType + " <=",
                value, "relateType");

            return this;
        }

        public Criteria andRelateTypeLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.RelateType);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelateTypeLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.RelateType + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateTypeLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductVersionScopeRelateDAO.RelateType + " like",
                buffer.toString(), "relateType");

            return this;
        }

        public Criteria andRelateTypeNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductVersionScopeRelateDAO.RelateType +
                " not like", buffer.toString(), "relateType");

            return this;
        }

        public Criteria andRelateTypeIn(List<String> values) {
            if (values.size() == 1) {
                return andRelateTypeEqualTo(values.get(0));
            } else {
                addCriterion(IProductVersionScopeRelateDAO.RelateType + " in",
                    values, "relateType");

                return this;
            }
        }

        public Criteria andRelateTypeNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRelateTypeNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductVersionScopeRelateDAO.RelateType +
                    " not in", values, "relateType");

                return this;
            }
        }

        public Criteria andRelateTypeIn(String[] values) {
            if (values.length == 1) {
                return andRelateTypeEqualTo(values[0]);
            } else {
                addCriterion(IProductVersionScopeRelateDAO.RelateType + " in",
                    Arrays.asList(values), "relateType");

                return this;
            }
        }

        public Criteria andRelateTypeNotIn(String[] values) {
            if (values.length == 1) {
                return andRelateTypeNotEqualTo(values[0]);
            } else {
                addCriterion(IProductVersionScopeRelateDAO.RelateType +
                    " not in", Arrays.asList(values), "relateType");

                return this;
            }
        }

        public Criteria andRelateTypeIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.RelateType + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateTypeNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.RelateType + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelateTypeBetween(String value1, String value2) {
            addCriterion(IProductVersionScopeRelateDAO.RelateType + " between",
                value1, value2, "relateType");

            return this;
        }

        public Criteria andRelateTypeNotBetween(String value1, String value2) {
            addCriterion(IProductVersionScopeRelateDAO.RelateType +
                " not between", value1, value2, "relateType");

            return this;
        }

        public Criteria andRelatedObjectIdIsNull() {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId +
                " is null");

            return this;
        }

        public Criteria andRelatedObjectIdIsNotNull() {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId +
                " is not null");

            return this;
        }

        public Criteria andRelatedObjectIdIsNotEmpty() {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId +
                " is not null AND " +
                IProductVersionScopeRelateDAO.RelatedObjectId + " <> ''");

            return this;
        }

        public Criteria andRelatedObjectIdIsEmpty() {
            addCriterion("(" + IProductVersionScopeRelateDAO.RelatedObjectId +
                " is null OR " + IProductVersionScopeRelateDAO.RelatedObjectId +
                " = '')");

            return this;
        }

        public Criteria andRelatedObjectIdEqualTo(long value) {
            return andRelatedObjectIdEqualTo(Long.valueOf(value));
        }

        public Criteria andRelatedObjectIdEqualTo(java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId + " = ",
                value, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedObjectIdEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.RelatedObjectId);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectIdEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectIdNotEqualTo(long value) {
            return andRelatedObjectIdNotEqualTo(Long.valueOf(value));
        }

        public Criteria andRelatedObjectIdNotEqualTo(java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId + " <>",
                value, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedObjectIdNotEqualToOrIsNull(long value) {
            return andRelatedObjectIdNotEqualToOrIsNull(Long.valueOf(value));
        }

        public Criteria andRelatedObjectIdNotEqualToOrIsNull(
            java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId +
                " is null OR " + IProductVersionScopeRelateDAO.RelatedObjectId +
                " <>", value, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedObjectIdNotEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.RelatedObjectId);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectIdNotEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId +
                " <> ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectIdGreaterThan(long value) {
            return andRelatedObjectIdGreaterThan(Long.valueOf(value));
        }

        public Criteria andRelatedObjectIdGreaterThan(java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId + " >",
                value, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedObjectIdGreaterThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.RelatedObjectId);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectIdGreaterThan(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectIdGreaterThanOrEqualTo(long value) {
            return andRelatedObjectIdGreaterThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andRelatedObjectIdGreaterThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId + " >=",
                value, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedObjectIdGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.RelatedObjectId);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectIdGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId +
                " >= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectIdLessThan(long value) {
            return andRelatedObjectIdLessThan(Long.valueOf(value));
        }

        public Criteria andRelatedObjectIdLessThan(java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId + " <",
                value, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedObjectIdLessThanForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.RelatedObjectId);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectIdLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectIdLessThanOrEqualTo(long value) {
            return andRelatedObjectIdLessThanOrEqualTo(Long.valueOf(value));
        }

        public Criteria andRelatedObjectIdLessThanOrEqualTo(
            java.lang.Long value) {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId + " <=",
                value, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedObjectIdLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.RelatedObjectId);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRelatedObjectIdLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId +
                " <= ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectIdIn(long[] values) {
            if (values.length == 1) {
                return andRelatedObjectIdEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId +
                    " in", values, "relatedObjectId");

                return this;
            }
        }

        public Criteria andRelatedObjectIdNotIn(long[] values) {
            if (values.length == 1) {
                return andRelatedObjectIdNotEqualTo((java.lang.Long) values[0]);
            } else {
                addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId +
                    " not in", values, "relatedObjectId");

                return this;
            }
        }

        public Criteria andRelatedObjectIdIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andRelatedObjectIdEqualTo(values.get(0));
            } else {
                addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId +
                    " in", values, "relatedObjectId");

                return this;
            }
        }

        public Criteria andRelatedObjectIdNotIn(List<java.lang.Long> values) {
            if (values.size() == 1) {
                return andRelatedObjectIdNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId +
                    " not in", values, "relatedObjectId");

                return this;
            }
        }

        public Criteria andRelatedObjectIdIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andRelatedObjectIdEqualTo(values[0]);
            } else {
                addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId +
                    " in", Arrays.asList(values), "relatedObjectId");

                return this;
            }
        }

        public Criteria andRelatedObjectIdNotIn(java.lang.Long[] values) {
            if (values.length == 1) {
                return andRelatedObjectIdNotEqualTo(values[0]);
            } else {
                addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId +
                    " not in", Arrays.asList(values), "relatedObjectId");

                return this;
            }
        }

        public Criteria andRelatedObjectIdIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId +
                " in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectIdNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId +
                " not in ", subQueryBean, dao);

            return this;
        }

        public Criteria andRelatedObjectIdBetween(long value1, long value2) {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId +
                " between", value1, value2, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedObjectIdBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId +
                " between", value1, value2, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedObjectIdNotBetween(long value1, long value2) {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId +
                " not between", value1, value2, "relatedObjectId");

            return this;
        }

        public Criteria andRelatedObjectIdNotBetween(java.lang.Long value1,
            java.lang.Long value2) {
            addCriterion(IProductVersionScopeRelateDAO.RelatedObjectId +
                " not between", value1, value2, "relatedObjectId");

            return this;
        }

        public Criteria andStatusIsNull() {
            addCriterion(IProductVersionScopeRelateDAO.Status + " is null");

            return this;
        }

        public Criteria andStatusIsNotNull() {
            addCriterion(IProductVersionScopeRelateDAO.Status + " is not null");

            return this;
        }

        public Criteria andStatusIsNotEmpty() {
            addCriterion(IProductVersionScopeRelateDAO.Status +
                " is not null AND " + IProductVersionScopeRelateDAO.Status +
                " <> ''");

            return this;
        }

        public Criteria andStatusIsEmpty() {
            addCriterion("(" + IProductVersionScopeRelateDAO.Status +
                " is null OR " + IProductVersionScopeRelateDAO.Status +
                " = '')");

            return this;
        }

        public Criteria andStatusEqualTo(String value) {
            addCriterion(IProductVersionScopeRelateDAO.Status + " = ", value,
                "status");

            return this;
        }

        public Criteria andStatusEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.Status);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Status + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusNotEqualTo(String value) {
            addCriterion(IProductVersionScopeRelateDAO.Status + " <>", value,
                "status");

            return this;
        }

        public Criteria andStatusNotEqualToOrIsNull(String value) {
            addCriterion(IProductVersionScopeRelateDAO.Status + " is null OR " +
                IProductVersionScopeRelateDAO.Status + " <>", value, "status");

            return this;
        }

        public Criteria andStatusNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.Status);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Status + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusGreaterThan(String value) {
            addCriterion(IProductVersionScopeRelateDAO.Status + " >", value,
                "status");

            return this;
        }

        public Criteria andStatusGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.Status);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Status + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(String value) {
            addCriterion(IProductVersionScopeRelateDAO.Status + " >=", value,
                "status");

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.Status);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Status + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusLessThan(String value) {
            addCriterion(IProductVersionScopeRelateDAO.Status + " <", value,
                "status");

            return this;
        }

        public Criteria andStatusLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.Status);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Status + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(String value) {
            addCriterion(IProductVersionScopeRelateDAO.Status + " <=", value,
                "status");

            return this;
        }

        public Criteria andStatusLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.Status);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andStatusLessThanOrEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Status + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductVersionScopeRelateDAO.Status + " like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductVersionScopeRelateDAO.Status + " not like",
                buffer.toString(), "status");

            return this;
        }

        public Criteria andStatusIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusEqualTo(values.get(0));
            } else {
                addCriterion(IProductVersionScopeRelateDAO.Status + " in",
                    values, "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(List<String> values) {
            if (values.size() == 1) {
                return andStatusNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductVersionScopeRelateDAO.Status + " not in",
                    values, "status");

                return this;
            }
        }

        public Criteria andStatusIn(String[] values) {
            if (values.length == 1) {
                return andStatusEqualTo(values[0]);
            } else {
                addCriterion(IProductVersionScopeRelateDAO.Status + " in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusNotIn(String[] values) {
            if (values.length == 1) {
                return andStatusNotEqualTo(values[0]);
            } else {
                addCriterion(IProductVersionScopeRelateDAO.Status + " not in",
                    Arrays.asList(values), "status");

                return this;
            }
        }

        public Criteria andStatusIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Status + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Status + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andStatusBetween(String value1, String value2) {
            addCriterion(IProductVersionScopeRelateDAO.Status + " between",
                value1, value2, "status");

            return this;
        }

        public Criteria andStatusNotBetween(String value1, String value2) {
            addCriterion(IProductVersionScopeRelateDAO.Status + " not between",
                value1, value2, "status");

            return this;
        }

        public Criteria andRemarksIsNull() {
            addCriterion(IProductVersionScopeRelateDAO.Remarks + " is null");

            return this;
        }

        public Criteria andRemarksIsNotNull() {
            addCriterion(IProductVersionScopeRelateDAO.Remarks +
                " is not null");

            return this;
        }

        public Criteria andRemarksIsNotEmpty() {
            addCriterion(IProductVersionScopeRelateDAO.Remarks +
                " is not null AND " + IProductVersionScopeRelateDAO.Remarks +
                " <> ''");

            return this;
        }

        public Criteria andRemarksIsEmpty() {
            addCriterion("(" + IProductVersionScopeRelateDAO.Remarks +
                " is null OR " + IProductVersionScopeRelateDAO.Remarks +
                " = '')");

            return this;
        }

        public Criteria andRemarksEqualTo(String value) {
            addCriterion(IProductVersionScopeRelateDAO.Remarks + " = ", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.Remarks);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Remarks + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksNotEqualTo(String value) {
            addCriterion(IProductVersionScopeRelateDAO.Remarks + " <>", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToOrIsNull(String value) {
            addCriterion(IProductVersionScopeRelateDAO.Remarks +
                " is null OR " + IProductVersionScopeRelateDAO.Remarks + " <>",
                value, "remarks");

            return this;
        }

        public Criteria andRemarksNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.Remarks);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Remarks + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksGreaterThan(String value) {
            addCriterion(IProductVersionScopeRelateDAO.Remarks + " >", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.Remarks);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Remarks + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(String value) {
            addCriterion(IProductVersionScopeRelateDAO.Remarks + " >=", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.Remarks);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Remarks + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLessThan(String value) {
            addCriterion(IProductVersionScopeRelateDAO.Remarks + " <", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.Remarks);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Remarks + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(String value) {
            addCriterion(IProductVersionScopeRelateDAO.Remarks + " <=", value,
                "remarks");

            return this;
        }

        public Criteria andRemarksLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.Remarks);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andRemarksLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Remarks + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductVersionScopeRelateDAO.Remarks + " like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductVersionScopeRelateDAO.Remarks + " not like",
                buffer.toString(), "remarks");

            return this;
        }

        public Criteria andRemarksIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksEqualTo(values.get(0));
            } else {
                addCriterion(IProductVersionScopeRelateDAO.Remarks + " in",
                    values, "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(List<String> values) {
            if (values.size() == 1) {
                return andRemarksNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductVersionScopeRelateDAO.Remarks + " not in",
                    values, "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(String[] values) {
            if (values.length == 1) {
                return andRemarksEqualTo(values[0]);
            } else {
                addCriterion(IProductVersionScopeRelateDAO.Remarks + " in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksNotIn(String[] values) {
            if (values.length == 1) {
                return andRemarksNotEqualTo(values[0]);
            } else {
                addCriterion(IProductVersionScopeRelateDAO.Remarks + " not in",
                    Arrays.asList(values), "remarks");

                return this;
            }
        }

        public Criteria andRemarksIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Remarks + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.Remarks + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andRemarksBetween(String value1, String value2) {
            addCriterion(IProductVersionScopeRelateDAO.Remarks + " between",
                value1, value2, "remarks");

            return this;
        }

        public Criteria andRemarksNotBetween(String value1, String value2) {
            addCriterion(IProductVersionScopeRelateDAO.Remarks +
                " not between", value1, value2, "remarks");

            return this;
        }

        public Criteria andScopeNameIsNull() {
            addCriterion(IProductVersionScopeRelateDAO.ScopeName + " is null");

            return this;
        }

        public Criteria andScopeNameIsNotNull() {
            addCriterion(IProductVersionScopeRelateDAO.ScopeName +
                " is not null");

            return this;
        }

        public Criteria andScopeNameIsNotEmpty() {
            addCriterion(IProductVersionScopeRelateDAO.ScopeName +
                " is not null AND " + IProductVersionScopeRelateDAO.ScopeName +
                " <> ''");

            return this;
        }

        public Criteria andScopeNameIsEmpty() {
            addCriterion("(" + IProductVersionScopeRelateDAO.ScopeName +
                " is null OR " + IProductVersionScopeRelateDAO.ScopeName +
                " = '')");

            return this;
        }

        public Criteria andScopeNameEqualTo(String value) {
            addCriterion(IProductVersionScopeRelateDAO.ScopeName + " = ",
                value, "scopeName");

            return this;
        }

        public Criteria andScopeNameEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.ScopeName);
            str.append(" = ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andScopeNameEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.ScopeName + " = ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andScopeNameNotEqualTo(String value) {
            addCriterion(IProductVersionScopeRelateDAO.ScopeName + " <>",
                value, "scopeName");

            return this;
        }

        public Criteria andScopeNameNotEqualToOrIsNull(String value) {
            addCriterion(IProductVersionScopeRelateDAO.ScopeName +
                " is null OR " + IProductVersionScopeRelateDAO.ScopeName +
                " <>", value, "scopeName");

            return this;
        }

        public Criteria andScopeNameNotEqualToForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.ScopeName);
            str.append(" <> ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andScopeNameNotEqualTo(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.ScopeName + " <> ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andScopeNameGreaterThan(String value) {
            addCriterion(IProductVersionScopeRelateDAO.ScopeName + " >", value,
                "scopeName");

            return this;
        }

        public Criteria andScopeNameGreaterThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.ScopeName);
            str.append(" > ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andScopeNameGreaterThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.ScopeName + " > ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andScopeNameGreaterThanOrEqualTo(String value) {
            addCriterion(IProductVersionScopeRelateDAO.ScopeName + " >=",
                value, "scopeName");

            return this;
        }

        public Criteria andScopeNameGreaterThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.ScopeName);
            str.append(" >= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andScopeNameGreaterThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.ScopeName + " >= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andScopeNameLessThan(String value) {
            addCriterion(IProductVersionScopeRelateDAO.ScopeName + " <", value,
                "scopeName");

            return this;
        }

        public Criteria andScopeNameLessThanForeignKey(java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.ScopeName);
            str.append(" < ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andScopeNameLessThan(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.ScopeName + " < ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andScopeNameLessThanOrEqualTo(String value) {
            addCriterion(IProductVersionScopeRelateDAO.ScopeName + " <=",
                value, "scopeName");

            return this;
        }

        public Criteria andScopeNameLessThanOrEqualToForeignKey(
            java.lang.String key) {
            StringBuffer str = new StringBuffer(IProductVersionScopeRelateDAO.ScopeName);
            str.append(" <= ").append(key);
            addForeignKeyCriterion(str.toString());

            return this;
        }

        public Criteria andScopeNameLessThanOrEqualTo(
            BaseQueryBean subQueryBean, IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.ScopeName + " <= ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andScopeNameLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductVersionScopeRelateDAO.ScopeName + " like",
                buffer.toString(), "scopeName");

            return this;
        }

        public Criteria andScopeNameNotLike(String value) {
            StringBuffer buffer = new StringBuffer("%");
            buffer.append(value);
            buffer.append("%");
            addCriterion(IProductVersionScopeRelateDAO.ScopeName + " not like",
                buffer.toString(), "scopeName");

            return this;
        }

        public Criteria andScopeNameIn(List<String> values) {
            if (values.size() == 1) {
                return andScopeNameEqualTo(values.get(0));
            } else {
                addCriterion(IProductVersionScopeRelateDAO.ScopeName + " in",
                    values, "scopeName");

                return this;
            }
        }

        public Criteria andScopeNameNotIn(List<String> values) {
            if (values.size() == 1) {
                return andScopeNameNotEqualTo(values.get(0));
            } else {
                addCriterion(IProductVersionScopeRelateDAO.ScopeName +
                    " not in", values, "scopeName");

                return this;
            }
        }

        public Criteria andScopeNameIn(String[] values) {
            if (values.length == 1) {
                return andScopeNameEqualTo(values[0]);
            } else {
                addCriterion(IProductVersionScopeRelateDAO.ScopeName + " in",
                    Arrays.asList(values), "scopeName");

                return this;
            }
        }

        public Criteria andScopeNameNotIn(String[] values) {
            if (values.length == 1) {
                return andScopeNameNotEqualTo(values[0]);
            } else {
                addCriterion(IProductVersionScopeRelateDAO.ScopeName +
                    " not in", Arrays.asList(values), "scopeName");

                return this;
            }
        }

        public Criteria andScopeNameIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.ScopeName + " in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andScopeNameNotIn(BaseQueryBean subQueryBean,
            IDataAccessInterface<?, ?> dao) {
            addCriterion(IProductVersionScopeRelateDAO.ScopeName + " not in ",
                subQueryBean, dao);

            return this;
        }

        public Criteria andScopeNameBetween(String value1, String value2) {
            addCriterion(IProductVersionScopeRelateDAO.ScopeName + " between",
                value1, value2, "scopeName");

            return this;
        }

        public Criteria andScopeNameNotBetween(String value1, String value2) {
            addCriterion(IProductVersionScopeRelateDAO.ScopeName +
                " not between", value1, value2, "scopeName");

            return this;
        }
    }
}
